﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntidadesCompartidas;
using Logica;
using System.IO;

namespace Smart_House_System.Administrador
{
    public partial class Formulario_web12 : System.Web.UI.Page
    {
        //private static Casa miCasa;
        private static int cedula;
        private static List<Casa> listCasas = new List<Casa>();

        protected void Page_Load(object sender, EventArgs e)
        {
            //if (!Page.IsPostBack)
            //{
            //}

        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("Default.aspx");
        }

        protected void btnAux2_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbUsu.Items.Count <= 1 || cmbUsu.SelectedIndex == 0)
                {
                    Image1.ImageUrl = "no_";
                    throw new Exception("No existen Planos disponibles");
                }
                else
                {
                    
                    ListItem i = cmbUsu.Items[cmbUsu.SelectedIndex];
                    foreach (Casa miCasa in listCasas)
                    {

                        foreach (Plano p1 in miCasa.Planos)
                        {
                            string[] misKeys = i.Value.Split('@');
                            int i2 = 0;
                            string keyO = "";
                            foreach (string key in misKeys)
                            {
                                i2++;
                                if (i2 == 1)
                                {
                                    keyO = key;
                                }
                            }

                            if (p1.Foto == keyO)
                            {
                                string vol = p1.Foto;
                                string sinJ = vol;//.Remove(0, 40);
                                Image1.ImageUrl = sinJ;
                                lblMensaje.Text = "";
                                flpFoto.Enabled = true;
                                break;
                            }
                        }
                    }

                }
            }
            catch (Exception ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text = ex.Message;
            }
        }

        protected void btnSiguiente_Click(object sender, EventArgs e)
        {
            try
            {
                if (flpFoto.Enabled)
                {
                    if (flpFoto.PostedFile.FileName != "")
                    {
                        string _nombreArchivoFoto = Path.GetFileName(flpFoto.PostedFile.FileName);
                        string _rutaFoto = Server.MapPath("~") + "\\Planos\\" + _nombreArchivoFoto;

                        ListItem i = cmbUsu.Items[cmbUsu.SelectedIndex];
                        string[] misKeys = i.Text.Split(' ');
                        int i2 = 0;
                        int keyO = 0;
                        foreach (string key in misKeys)
                        {
                            i2++;
                            if (i2 == 2)
                            {
                                keyO = int.Parse(key);

                            }
                        }
                        Plano _p = new Plano();
                        _p.Idp = keyO;
                        _p.Foto = "../Planos/" + _nombreArchivoFoto;

                        FabricaLogica.getLogicaPlano().ModificarImagenPlano(_p);
                        flpFoto.PostedFile.SaveAs(_rutaFoto);
                        lblMensaje.ForeColor = System.Drawing.Color.Green;
                        lblMensaje.Text = "Plano modificado";
                        txtCedula.Text = "";
                        rfvFoto.Enabled = false;
                        rfvCedula.Enabled = true;
                        cmbUsu.Items.Clear();
                        Image1.ImageUrl = "no_";
                        cmbCasas.Items.Clear();
                    }
                    else
                    {
                        Image1.ImageUrl = "no_";
                        throw new Exception("Debe seleccionar una imagen para modificar");
                    }
                }
                else
                {
                    Image1.ImageUrl = "no_";
                    throw new Exception("Debe seleccionar una imagen para modificar");
                }
            }
            catch (Exception ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text = ex.Message;
            }

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                flpFoto.Enabled = false;
                rfvFoto.Enabled = false;
                cmbUsu.Items.Clear();
                ListItem i = new ListItem("Seleccione Plano", "Seleccione Plano");
                cmbUsu.Items.Add(i);
                lblMensaje.Text = "";
                cedula = int.Parse(txtCedula.Text);
                //miCasa = FabricaLogica.getLogicaCasa().BuscarCasa(cedula);
                Usuario usu = new Usuario();
                usu.Ci = cedula;
                listCasas = FabricaLogica.getLogicaCasa().ListarCasas(usu);
                if (listCasas == null || listCasas.Count == 0)
                {
                    cmbCasas.Items.Clear();
                    cmbUsu.Items.Clear();
                    throw new Exception("Usuario no registrado.");
                }
                else
                {
                    cmbCasas.Items.Clear();
                    int ii = 0;
                    foreach (Casa c1 in listCasas)
                    {
                        ListItem i2 = new ListItem("Casa " + c1.Id + " - " + c1.Direccion, c1.Id.ToString());
                        cmbCasas.Items.Add(i2);
                        Casa aux = FabricaLogica.getLogicaCasa().BuscarCasa(c1.Id);
                        listCasas[ii].Planos = aux.Planos;
                        ii++;
                    }
                    lblMensaje.ForeColor = System.Drawing.Color.Green;
                    lblMensaje.Text = "Hablitado para agregar Plano";
                }
                if (listCasas == null || listCasas.Count == 0)
                {
                    throw new Exception("Usuario no registrado.");
                }
                else
                {
                    Casa miCasa = FabricaLogica.getLogicaCasa().BuscarCasa(listCasas[0].Id);
                    foreach (Plano p1 in miCasa.Planos)
                    {
                        ListItem i3 = new ListItem("Plano " + p1.Idp.ToString(), p1.Foto + "@" + p1.Idp);
                        cmbUsu.Items.Add(i3);
                    }

                    lblMensaje.ForeColor = System.Drawing.Color.Green;
                    lblMensaje.Text = "Hablitado para configurar Plano";

                }
            }
            catch (Exception ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text = ex.Message;
            }
        }

        protected void btnAux1_Click(object sender, EventArgs e)
        {
            try
            {
                cmbUsu.Items.Clear();
                ListItem i = new ListItem("Seleccione Plano", "Seleccione Plano");
                cmbUsu.Items.Add(i);
                Casa miCasa = FabricaLogica.getLogicaCasa().BuscarCasa(listCasas[cmbCasas.SelectedIndex].Id);
                foreach (Plano p1 in miCasa.Planos)
                {
                    ListItem i3 = new ListItem("Plano " + p1.Idp.ToString(), p1.Foto + "@" + p1.Idp);
                    cmbUsu.Items.Add(i3);
                }
            }
            catch (Exception ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text = ex.Message;
            }
        }

    }
}